package pe.edu.upc.jtigers.svpn.web.controller;

import java.util.Collection;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import pe.edu.upc.jtigers.svpn.aplication.bean.UsuarioBean;
import pe.edu.upc.jtigers.svpn.data.Constans.MenuConstans;
import pe.edu.upc.jtigers.svpn.data.Constans.TipoUsuarioConstans;
import pe.edu.upc.jtigers.svpn.domain.model.Usuario;
import pe.edu.upc.jtigers.svpn.domain.service.EmprendedorService;
import pe.edu.upc.jtigers.svpn.domain.service.SabioService;
import pe.edu.upc.jtigers.svpn.domain.service.UsuarioService;
import pe.edu.upc.jtigers.svpn.web.common.BaseController;
import pe.edu.upc.jtigers.svpn.web.common.RequestMappingConstant;
import pe.edu.upc.jtigers.svpn.web.common.ResponseViewConstant;

@Controller
public class UsuarioController extends BaseController {

	@Autowired
	private UsuarioService usuarioService;

	@Autowired
	private EmprendedorService emprendedorService;

	@Autowired
	private SabioService sabioService;

	@RequestMapping(RequestMappingConstant.LISTA_USUARIO)
	public ModelAndView buscarUsuarios(@RequestBody UsuarioBean usuario) {
		if (this.getUsuarioLogueado().getUltimoMenuVisitado().getIdMenu() == MenuConstans.BUSCA_SABIO) {
			usuario.setTipoUsuario(TipoUsuarioConstans.SABIO);
		} else if (this.getUsuarioLogueado().getUltimoMenuVisitado()
				.getIdMenu() == MenuConstans.BUSCA_EMPRENDEDOR) {
			usuario.setTipoUsuario(TipoUsuarioConstans.EMPRENDEDOR);
		}
		Collection<Usuario> usuarios = usuarioService.buscarUsuarios(usuario);
		ModelAndView respuesta = new ModelAndView(
				ResponseViewConstant.VIEW_LISTA_USUARIO, "usuarios", usuarios);
		return respuesta;
	}

	@RequestMapping(RequestMappingConstant.DETALLE_USUARIO)
	public ModelAndView detalleUsuario(@RequestBody int id) {
		UsuarioBean usuario=null;
		if(id==0)
		{
			usuario = new UsuarioBean();
			if (this.getUsuarioLogueado().getUltimoMenuVisitado().getIdMenu() == MenuConstans.BUSCA_SABIO) {

				usuario.setTipoUsuario(TipoUsuarioConstans.SABIO);
			} else if (this.getUsuarioLogueado().getUltimoMenuVisitado()
					.getIdMenu() == MenuConstans.BUSCA_EMPRENDEDOR) {
				usuario.setTipoUsuario(TipoUsuarioConstans.EMPRENDEDOR);			}

		}
		else
		if (this.getUsuarioLogueado().getUltimoMenuVisitado().getIdMenu() == MenuConstans.BUSCA_SABIO) {

			usuario = sabioService.obtenerUsuarioBean(id);
		} else if (this.getUsuarioLogueado().getUltimoMenuVisitado()
				.getIdMenu() == MenuConstans.BUSCA_EMPRENDEDOR) {

			usuario =emprendedorService.obtenerUsuarioBean(id);
		}

		ModelAndView respuesta =  new ModelAndView(
				ResponseViewConstant.VIEW_EDITA_USUARIO, "usuario",
				usuario);;
		return respuesta;
	}

}
